## Комбинаторика


### Задача 0

Петя составляет семибуквенные слова перестановкой букв слова ТРАТАТА. Сколько всего различных слов может составить Петя?


### Задача 1
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 4.

Сколько различных вариантов шифра можно задать, если известно, что цифра 1 встречается ровно два раза, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?

>Ответ: 270.

### Задача 2
Составляют 5-буквенные слова из букв слова ПЯТНИЦА. Найти количество слов, которые не начинаются с Н и в которых есть только одна буква Я. Буквы в слове могут повторяться.

> Ответ: 5616.


### Задача 3
Сколько слов длины 6, начинающихся с согласной буквы, можно составить из букв Г, О, Д? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.

Решение.
На первом месте может стоять две буквы: Г или Д, на остальных  — три буквы. Таким образом, можно составить 2 · 35  =  486 слов.

 
>Ответ: 486.

### Задача 4.
Есть 5 человек (2 мужчины и 3 менщины), сколько существует способов разбить их на пары. Вывести на экран все пары. Реализовать в ОО парадигме, как класс функтор.

```python
class pairMaker:

    def __init__(self, men=None, women=None):
      ....

    def __call__(self, *args, **kwargs):
        ...

    def __repr__(self):
       ...

    def counter(self):
       ...

men = ['Иван', 'Сергей']
women = ['Мария', 'Анна', 'Зоя']
#

pairs = pairMaker()
pairs(men, women)

print(pairs) # ('Иван', 'Мария'), ('Иван', 'Анна'), ('Иван', 'Зоя'), ('Сергей', 'Мария'), ('Сергей', 'Анна'), ('Сергей', 'Зоя')
print(pairs.counter()) # 6


```


### Задача 5

Вывести все возможные перестановки из N списков. Сколько их количество

>all_list = [[1, 3, 4], [6, 7, 9], [8, 10, 5] ]